﻿// Study0622.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
// 第六章 函数和指针 删除深复制  移动临时对象

#include <iostream>
using namespace std;

class IntNum
{
public:
	IntNum(int x = 0) :xptr(new int(x))
	{
		cout << "调用构造函数" << endl;
	}
	IntNum(const IntNum& n):xptr(new int(*n.xptr))
	{
		cout << "调用复制构造函数，并复制地址所指空间" << endl;
	}
	~IntNum()
	{
		delete xptr;
		cout << "销毁对象，并释放创建的空间" << endl;
	}
	int getInt() {
		return *xptr;
	}

private:
	int* xptr;
};

IntNum getInt()
{
	IntNum a;
	return a;
}
int main()
{
	cout << getInt().getInt() << endl;
	return 0;
}


